Hierarchical memory architecture with a phase-change memory (PCM) content addressable memory (CAM)

ABSTRACT

A Phase-Change Memory (PCM) Content Addressable Memory (CAM) utilized to store addresses of defective rows or columns of a memory array or memories attached to a backside bus of a concentrator device.

BACKGROUND

With current microprocessors, the data transaction between the CPUand/or core logic and system memory becomes the bottleneck of systemperformance. Due to the intrinsic capacitances of system-level buses, aconsiderable amount of power may be dissipated at the input/outputinterface of a processor when binary data is transmitted. Simultaneouspower and timing optimization to account for bus latency are criticaldesign constraints taken into account to improve system performance.Additional improvements are needed at the interface to mass-storagememory devices.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter regarded as the invention is particularly pointed outand distinctly claimed in the concluding portion of the specification.The invention, however, both as to organization and method of operation,together with objects, features, and advantages thereof, may best beunderstood by reference to the following detailed description when readwith the accompanying drawings in which:

FIG. 1 is an embodiment of a wireless device that illustrates ahierarchical memory architecture that may be used to access memorystorage in accordance with the present invention;

FIG. 2 is a schematic representation of a concentrator device that makespossible a hierarchical memory architecture in accordance with thepresent invention;

FIG. 3 is a block representation of addressing within the concentratordevice;

FIG. 4 is a schematic representation of a 2×2 Phase-Change Memory (PCM)Content Addressable Memory (CAM) array in accordance with the presentinvention; and

FIG. 5 illustrates a programmed example of the PCM CAM array shown inFIG. 4.

It will be appreciated that for simplicity and clarity of illustration,elements illustrated in the figures have not necessarily been drawn toscale. For example, the dimensions of some of the elements may beexaggerated relative to other elements for clarity. Further, whereconsidered appropriate, reference numerals have been repeated among thefigures to indicate corresponding or analogous elements.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the invention.However, it will be understood by those skilled in the art that thepresent invention may be practiced without these specific details. Inother instances, well-known methods, procedures, components and circuitshave not been described in detail so as not to obscure the presentinvention.

Use of the terms “coupled” and “connected”, along with theirderivatives, may be used. It should be understood that these terms arenot intended as synonyms for each other. Rather, in particularembodiments, “connected” may be used to indicate that two or moreelements are in direct physical or electrical contact with each other.“Coupled” may be used to indicated that two or more elements are ineither direct or indirect (with other intervening elements between them)physical or electrical contact with each other, and/or that the two ormore elements co-operate or interact with each other (e.g. as in a causeand effect relationship).

The wireless architecture embodiment illustrated in FIG. 1 shows asystem 10 that includes a processor that communicates with multiplestorage devices in a hierarchical arrangement in accordance with thepresent invention. Although the figure shows a wireless communicationsembodiment, it should be noted that the present invention is not limitedto electronic devices that communicate in a wireless environment andother, non-wireless applications may make use of the present invention.

As shown in this wireless embodiment, system 10 may include one or moreantenna structures 14 to allow radios to communicate with otherover-the-air communication devices. As such, system 10 may operate as acellular device or a device that operates in wireless networks such as,for example, Wireless Fidelity (Wi-Fi) that provides the underlyingtechnology of Wireless Local Area Network (WLAN) based on the IEEE802.11 specifications, WiMax and Mobile WiMax based on IEEE 802.11-2005,Wideband Code Division Multiple Access (WCDMA), and Global System forMobile Communications (GSM) networks, although the present invention isnot limited to operate in only these networks. The radio subsystemscollocated in the same platform of system 10 provide the capability ofcommunicating with different frequency bands in an RF/location spacewith other devices in a network. It should be understood that the scopeof the present invention is not limited by the types of, the number of,or the frequency of the communication protocols that may be used bysystem 10.

The embodiment illustrates the coupling of antenna structure 14 to atransceiver 12 to accommodate modulation/demodulation. In general,analog front end transceiver 12 may be a stand-alone Radio Frequency(RF) discrete or integrated analog circuit, or transceiver 12 may beembedded with a processor 20 having one or more processor cores 16 and18. The multiple cores allow processing workloads to be shared acrossthe cores and handle baseband functions and application functions. TheFront Side Bus (FSB) 22 provides an interface between the processor andchipset components and system memory storage. The FSB is amultiprocessing interface to processors, memory, and I/O that may beused to provide communication or information between the processor andthe memory storage. The FSB signals may use Gunning Transceiver Logic(GTL+) signaling technology having differential input buffers which usea reference level by the receivers to determine if a signal is a logical0 or a logical 1, although the scope of the present invention is notlimited in this respect.

One or more concentrator devices 30 are connected to FSB 22 and becomethe channel to access other memory devices. Embodiments of the presentinvention, as illustrated in the figure, allow concentrator device 30 tobe connected in tandem with additional memory storage. This tandemconnection is shown by the placement of memory storage 40 and/or memorystorage 50 behind concentrator device 30. In this arrangement,concentrator device 30 separates NAND, RAM, and other memory storagedevices from FSB 22, thus reducing the intrinsic capacitance associatedwith the system-level bus.

The embodiment also illustrates another concentrator device 30 with afrontside bus port connected to FSB 22 and a backside port connected toa bus 32. This backside port may be configured to communicate over ahalf-duplex bidirectional bus as is shown in the figure or may beconfigured to communicate over a full-duplex bidirectional bus. Theup-stream path going from the backside attached memory to theconcentrator device need not have exactly the same bandwidth as thedownstream path going from the concentrator device to the backsideattached memory. Multiple memory storage devices, represented by memorystorage 60, may be connected to bus 32.

Yet another concentrator device 30 is shown having a frontside bus portconnected to bus 32 and a backside port connected to a bus 34. Memorystorage devices, depicted by memory storage 70, are connected to bus 34.Thus, it has been shown that properly arranged concentrator device(s) 30allow a succession of memory devices and enable attachment of a memorydepth to a processor controller with a limited pin count. Concentratordevice(s) 30 open the system mass memory storage and make possible ahierarchical memory architecture with a memory capacity limited mainlyby practical physical constraints.

It should be noted that concentrator device 30 and the volatile andnonvolatile memories may be packaged separately. Alternatively,concentrator device 30 may be combined with the volatile and nonvolatilememory devices in a stacking process. The footprint on a board may bereduced by placing concentrator device 30 in a multi-chip package withother memory components and computing devices. Processor 20 may also beincluded in this multi-chip package.

Concentrator device 30 sits between processor 20 and memory storagedevices that may have different storage mechanisms and differentinterface formats. The concentrator device provides an interface toaccommodate the different memory formats such as, for example, NORhaving random-access reading, NAND providing page accesses, and RAMallowing DDR.

FIG. 2 is a block diagram of concentrator device 30 that, as previouslystated, channels data between processor 20 and other types of volatileand nonvolatile memories that are connected to the backside ports.Concentrator device 30 captures information through the frontside portand provides high speed communication with FSB 22, provides support fordirect writes, and provides high speed Double Data Rate (DDR) bustransactions that transfer data at twice the clock rate. A DDRmultiplexer 210 is connected to frontside bus port 206 and provides theinterface between the FSB 22 and the mixed memory types that mayinclude, for example, PCM, MRAM, FRAM, SRAM, and Pseudo SRAM.

To control memory operations, concentrator device 30 includes a PageBuffer, Command Queue, and Status Block 212 that interprets the commandset and issues memory commands. An internal controller handles theoperational timings and verifies the correct execution of the memorycommands such as, for example, write commands, read commands, and flushcommands. Additionally, a host of commands such as “Status read”,“copy”, “move”, or “error-correct” may be supported in thisarchitecture. The controller supplies the status register whose registerbits convey information about the status and report on any errors thatmay occur during memory operations. The status register output may beread to monitor the progress during command operations or report theresult of the memory operations.

The page buffer holds several words that are to be programmed as a groupinto a memory cell block and also buffers a large quantity of data readfrom the memory cell block. The page buffer is filled with words to beprogrammed before issuing the programming command that then transfersdata from the page buffer to the memory cells in the memory arrays. Inthis fashion one page is programmed, and after the program and verifyprocesses are complete, the program and verify processes for a next pagemay be executed. A read command executes to read data from the memorycells to the page buffer that is then transferred out. It should benoted that programming may start prior to transferring all of the dataacross the host interface. The data can propagate down through thehierarchy with some level of buffering until a sufficient amount ofinformation is transferred to the target for programming to commence.

A flush pin 208 initiates the dumping of contents of RAM 260 to PCM,i.e., first memory array 220 and second memory array 230. In addition,flush commands with an associated address dump the RAM contents to PCMstorage (denoted by blocks 214). The flush functionality is useful for“check pointing” RAM contents to nonvolatile memory and for use duringpower loss scenarios where the contents of RAM are autonomously copiedto nonvolatile storage. In some embodiments concentrator device 30 mayact as a bus master for the frontside bus 22 to copy the contents of RAMor DRAM to nonvolatile memory in the hierarchy of device 30, allowingother components of the system to be powered down.

A Configuration Register 216 is used to set the default operation ofconcentrator device 30. The command interface may be used to update theconfiguration register and change the concentrator device's behavior.Configuration Register 216 is used to configure the type of bus accessthat the memory performs and provide alternative operating modes.

The multiple bank architecture as illustrated by first memory array 220and second memory array 230 provides flexibility for splitting the codeand data spaces within the memory arrays. The dual operations allow codeto be executed from one bank while the other bank is being programmed orerased. While programming or erasing in one bank, read operations arepossible in the other bank. In one embodiment the first and secondmemory arrays are Phase Change Memory (PCM) arrays, also referred to asPhase-Change Random Access Memory (PRAM or PCRAM), Ovonic Unified Memory(OUM) or Chalcogenide Random Access Memory (C-RAM). The arrays of PCMcells include alloys of elements of group VI of the periodic table,elements such as Te or Se that are referred to as chalcogenides orchalcogenic materials.

Chalcogenides may be used advantageously in phase change memory cells toprovide data retention and remain stable even after the power is removedfrom the nonvolatile memory. Taking the phase change material asGe₂Sb₂Te₅ for example, two phases or more are exhibited having distinctelectrical characteristics useful for memory storage. The chalcogenicmaterial may be electrically switched between different statesintermediate between the amorphous and the crystalline states, therebygiving rise to a multilevel storing capability.

In another embodiment the first and second memory arrays 220 and 230 maybe Magnetic Random Access Memory (MRAM) cells where magnetic storageelements are formed from two ferromagnetic plates (not shown) located atan intersection of a row and column line and selected by a MagneticTunnel Junction (MTJ) device (not shown). Current imparted to the rowline in one direction causes a magnetic field operative on the MRAM cellbiasing the MRAM cell toward a binary state. Due to a magnetic tunneleffect, the electrical resistance of the memory cell changes based onthe orientation of the fields in the two plates.

In yet another embodiment the first and second memory arrays 220 and 230may be Ferroelectric Random Access Memory (FRAM) cells. Thetransistor-capacitor cell (not shown) includes the ferroelectricmaterial where a bi-stable atom is shifted to form two stablepolarization states. Memory cell data may be written by positively ornegatively orienting the dipoles of the ferroelectric material via anapplied polarizing voltage. Read control circuitry senses the directionof the stable electric polarization that remains in place even after theelectric field is removed.

A block labeled Content Addressable Memory (CAM), Address Remapping,Compression, and Cache Optimization 240 provides multiple functions. TheCAM array(s) may be utilized to store the addresses of defective rows orcolumns of first memory array 220 and/or second memory array 230 ormemories attached to the backside bus. In one embodiment of thisinvention, the CAM is used for NAND memory attached to the backside busto map around bad blocks. The CAM provides access to remappinginformation in tens of nanoseconds, for example, versus the hundreds ofnanoseconds or even microseconds of time that would be necessary tosearch through memory to discover this mapping information. The CAM isalso used where NAND contents are being cached in PCM. In this case, theCAM may be used to quickly ascertain if the target contents arecurrently stored in PCM, and in the case where they are, the addresslocation(s) where they are stored.

FIG. 3 is a block presenting the addressing within the concentratordevice. Concentrator device 30 receives through the frontside bus port206 the address information that may be used to access the memorydevices attached at various locations in the hierarchy. This NANDaddress information may or may not be remapped as it passes through thehierarchy tree. For NAND port addressing each concentrator device 30knows the types of memory devices that are attached to the backsideports via a discovery process. An internal lookup table associates‘long’ addresses to ‘short’ addresses. The long addresses include acomplete roadmap to the target port such as, for example, a ‘0’ mayrepresent the port on the left and a ‘1’ may represent the port on theright. The short addresses may be used for inter-device communicationand include a sequential list of valid ports for the lower tree.

For PCM address mapping each concentrator device knows the types ofmemory that are attached to its backside ports via a discovery process.Each concentrator device 30 includes a lookup table for associating‘long’ addresses to ‘short’ addresses. Again, the roadmap may have a ‘0’to represent the port on the left and a ‘1’ to represent the port on theright. The short addresses may be used for inter-device communicationand include a sequential list of valid ports for the lower tree.

FIG. 4 shows a portion of the PCM CAM that for simplicity of descriptionand ease of illustration is shown as a 2×2 array. Each CAM cell 300,310, 320, and 330 includes two PCM storage locations to match one bit.The figure shows a ternary CAM having the capability of being able toignore some bits, and thus, effectively provide ‘don't care’ states. Thetwo PCM memory elements in each cell can be programmed ‘on’ orprogrammed ‘off’. The CAM compares every bit of the input pattern to thematch value stored in the memory array. Depending on the state of theinputs I₀ and I₁ relative to the state of the cells, the “MATCH” wiresare either pulled down or not pulled down and provide a static outputrepresentative of the states of the internal memory cells. A comparisoncircuit (not shown) at the top of the MATCH lines indicates whether allof the inputs match the content. It should be noted that flag bits maybe added to the end of the CAM array to indicate 1-bit errors and alsounused elements that may be used for repair.

FIG. 5 shows the same portion of the PCM CAM as FIG. 4 having dataprogrammed and stored in the array. In this example, CAM cell 300includes a storage location 302 programmed to store a “1” and a storagelocation 304 programmed to store a “0”. The selector device in CAM cell300 connected to storage location 302 receives the search data I₀,whereas the selector device connected to storage location 304 receivesthe complement of search data I₀. CAM cell 310 includes a storagelocation 312 programmed to store a “0” and a storage location 314programmed to store a “1”. The selector device in CAM cell 310 connectedto storage location 312 receives the search data labeled I₀, whereas theselector device connected to storage location 314 receives thecomplement of search data I₀.

Further based on this example, CAM cell 320 includes a storage location322 programmed to store a “0” and a storage location 324 programmed tostore a “1”. The selector device in CAM cell 320 connected to storagelocation 322 receives the search data I₁, whereas the selector deviceconnected to storage location 324 receives the complement of search dataI₁. CAM cell 330 includes a storage location 332 programmed to store a“0” and a storage location 334 programmed to store a “1”. The selectordevice in CAM cell 330 connected to storage location 332 receives thesearch data labeled I₁, whereas the selector device connected to storagelocation 334 receives the complement of search data I₁.

In operation, a MATCH output is a function of the state of one input andthe state of the two storage elements in one CAM cell in the CAM array.By way of example, block 300 shows an input I₀ and a complimented I₀input, along with the one output labeled MATCH0. Memory cell 300 has twoPCM memory elements, i.e., the memory elements denoted as ‘Element 302’and ‘Element 304’, which may be programmed either ‘on’ or ‘off’. Thefollowing table describes the functionality of the MATCH0 output basedon the state of I₀ and the programmed values:

Element 0 Element 1 MATCH0 output On Off Matches when I₀ = 0, does notmatch when I₀ = 1; Off On Matches when I₀ = 0, does not match when I₀ =1; On On Unused (disables match - MATCH 0 will not match any input); OffOff Ignore input bit I₀.

Returning to FIG. 2 and the block labeled Content Addressable Memory(CAM), Address Remapping, Compression, and Cache Optimization 240, thedata compression function can be effectively used in managing thismemory based storage system. A variety of data compression algorithmsadaptable to various standards and formats are supported to expand thewrite bandwidth and the storage capacity. The remap function allowsstartup code to be used for program control and then a remapping cancause new settings to take place, which cause the entire memory layoutto change.

A microcontroller (uC) 250 integrates counters/timers, an interruptstructure, configurable I/O ports such as General Purpose Input/Output(GPIO) 300, and selectable modes of power reduction, amongst otherprocessing functions. By way of example, uC 250 may include an operatingmode to activate security features that regulate access requests tocontents of locations of program memory. With security activated,concurrent programming (i.e., programming of one area of memory usinginstructions executing from another area of memory) can be initiatedunder predetermined secure conditions.

A Code storage block 270 provides for fast access to code and contentthat doesn't change often such as, for example, the BIOS in PCs and theoperating system in a cell phone.

A configurable Error-Correcting Code (ECC) Engine 280 provides errordetection and correction schemes. Error detection and correction schemescompensate for problems associated with writing accuracy andrepeatability. Error-correcting code is a code in which each data signalconforms to specific rules of construction so that departures from thisconstruction in the received signal can generally be automaticallydetected and corrected. Configurable ECC Engine 280 monitors, fixes, andprevents memory bit errors. MLC flash memories normally require morecomplex error-correction code circuits that are handled by ConfigurableError-Correcting Code (ECC) Engine 280.

A NAND Host State Machine 290 controls operations in support ofconnecting NAND memory to a backside port, i.e., Backside Port 0 labeled302 or Backside Port 1 labeled 304. The state machine extracts a commandand operation information to control the internal NAND interface andadjust data input and/or output between the NAND interface and thebuffer memory based on the command and the address. Additionally, thisstate machine monitors and reports status of the NAND it controls. Thestate machine may output the data to the error correction logic inConfigurable ECC Engine 280. The error correction logic performs errorcorrection on the data and outputs a result back to the state machine.With integrated capabilities like address lookup through a ContentAddressable Memory, Error Correction, and control orchestrated via amicrocontroller, this subsystem can, properly configured, act as amulti-core NAND management subsystem or an autonomous computingsubsystem.

By now it should be apparent that embodiments of the present inventionallow increased memory storage efficiencies through hierarchical datastorage by using features of the present invention. By connecting thefrontside port of a concentrator device to the host processor, memorydevices such as NAND, RAM, and other memory storage devices may beconnected to the backside port. Thus, a hierarchical memory architectureis provided by incorporating one or more concentrator devices in amemory storage system.

While certain features of the invention have been illustrated anddescribed herein, many modifications, substitutions, changes, andequivalents will now occur to those skilled in the art. It is,therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the invention.

The invention claimed is:
 1. A concentrator device comprising: a frontside port to couple to a processor and provide hierarchical storage tomemory devices coupled to a backside port; and a Content AddressableMemory (CAM), the concentrator device is to cache data received from thebackside port, the CAM to make a determination whether target contentsare stored in a Phase-Change Memory (PCM) array separate from the CAM,the CAM being further configured to provide address locations in the PCMarray where the target contents are stored, at least one CAM cell of theCAM having two PCM storage locations including a first PCM storagelocation and a second PCM storage location, one end of the first PCMstorage location being coupled to a match line of the CAM and a gate ofthe first PCM storage location to receive a search data value as aninput, one end of the second PCM storage location being coupled to thematch line and a gate of the second PCM storage location to receive acomplemented value of the search data value as a complemented input. 2.The concentrator device of claim 1, wherein the CAM is furtherconfigured to store addresses of defective rows or columns of the PCMarray.
 3. The concentrator device of claim 1, wherein the memory devicescomprise a NAND memory, wherein the CAM is configured to provideaddresses of defective memory locations to map around bad blocks for theNAND memory.
 4. The concentrator device of claim 1, wherein the two PCMstorage locations are configured to match one bit of data.
 5. Theconcentrator device of claim 1, wherein the at least one CAM cellincludes its own associated comparison circuit to detect a match betweena stored bit and an input bit.
 6. The concentrator device of claim 1,wherein the memory devices are associated with a plurality of differentmemory formats including at least one of a plurality of memory typeswhere the memory types include NAND, PCM, Magnetic Random Access Memory(MRAM), Ferroelectric Random Access Memory (FRAM), Static Random AccessMemory (SRAM), and Pseudo SRAM.
 7. The concentrator device of claim 6,further comprising an interface to accommodate the plurality ofdifferent memory formats.
 8. A concentrator device to transfer databetween a processor and external memory devices, comprising: aPhase-Change Memory (PCM) array; a page buffer to store the datareceived from the processor for programming into the PCM array; and aContent Addressable Memory (CAM) comprising a plurality of CAM cells,the CAM to make a determination whether target contents are stored inthe PCM array and to provide address locations in the PCM array wherethe target contents are stored, at least one of the plurality of CAMcells includes two PCM storage locations used to match one data bit, thetwo PCM storage locations including a first PCM storage location and asecond PCM storage location, one end of the first PCM storage locationbeing coupled to a match line of the CAM and a gate of the first PCMstorage location to receive a search data value as an input, one end ofthe second PCM storage location being coupled to the match line and agate of the second PCM storage location to receive a complemented valueof the search data value as a complemented input.
 9. The concentratordevice of claim 8, wherein each of the plurality of CAM cells has itsown associated comparison circuit to detect a match between a stored bitand an input bit.
 10. The concentrator device of claim 8, wherein the atleast one of the plurality of CAM cells further comprises: a firstselector device having a control terminal to receive the search datavalue; and a second selector device having a control terminal to receivethe complemented value, the first PCM storage location being coupledbetween a conduction terminal of the first selector device and a matchoutput, the second PCM storage location being coupled between aconduction terminal of the second selector device and the match output.11. The concentrator device of claim 8, wherein the CAM includes astorage location for a flag bit to indicate a 1-bit error.
 12. Theconcentrator device of claim 8, wherein the CAM includes a storagelocation for a flag bit to indicate an unused element that is used forrepair.
 13. A Content Addressable Memory (CAM), comprising: a matchline; and a CAM cell having two Phase-Change Memory (PCM) storagelocations used to match one data bit, the two PCM storage locationsincluding a first PCM storage location and a second PCM storagelocation, one end of the first PCM storage location being coupled to thematch line and a gate of the first PCM storage location to receive asearch data value as an input, one end of the second PCM storagelocation being coupled to the match line and a gate of the second PCMstorage location to receive a complemented value of the search datavalue as a complemented input.
 14. The CAM of claim 13, wherein the CAMcell further comprises: a first selector device having a controlterminal to receive the search data value; and a second selector devicehaving a control terminal to receive the complemented value, wherein thefirst PCM storage location is coupled between a conduction terminal ofthe first selector device and a match output and the second PCM storagelocation is coupled between a conduction terminal of the second selectordevice and the match output.
 15. The CAM of claim 13, further comprisinga storage location for a flag bit to indicate a 1-bit error.
 16. The CAMof claim 13, further comprising a storage location for a flag bit toindicate an unused element that is used for repair.
 17. The CAM of claim13, wherein the CAM cell is configured to store information to becompared with the input to determine if target contents are stored in aPCM array separate from the CAM, and to provide address locations in thePCM array where the target contents are stored.
 18. The CAM of claim 13,further comprising: another match line; and another CAM cell comprisinga third PCM storage location and a fourth PCM storage location, one endof the third PCM storage being coupled to the other match line and agate of the third PCM storage location configured to receive the searchdata value, one end of the fourth PCM storage location being coupled tothe other match line and a gate of the fourth PCM storage locationconfigured to receive the complemented value.
 19. The CAM of claim 13,wherein the match line is configured to produce a value corresponding toa match as an output only when one of the first PCM location and thesecond PCM location is on and the other is off.
 20. The CAM of claim 13,wherein the match line is configured to be disabled when both the firstPCM location and the second PCM location are on.
 21. The CAM of claim13, wherein the match line is configured to ignore the input.
 22. AContent Addressable Memory (CAM), comprising: a match line; and a CAMcell having two Phase-Change Memory (PCM) storage locations used tomatch one data bit, the two PCM storage locations including a first PCMstorage location and a second PCM storage location, one end of the firstPCM storage location being coupled to the match line and a gate of thefirst PCM storage location to receive a search data value as an input,one end of the second PCM storage location being coupled to the matchline and a gate of the second PCM storage location to receive acomplemented value of the search data value as a complemented input, theCAM cell being configured to store remapping information to map arounddefective memory locations.
 23. The CAM of claim 22, further comprisinga remapping circuit used by a host in a reclaim operation to move asubset of the contents of a first memory block to a second memory blockand erase the first block.
 24. The CAM of claim 22, further comprisingan inverter coupled with the CAM cell, the inverter configured toprovide the complemented value using the search data value.